git blame的に行の最終編集者を表示する
https://gyazo.com/da242eb1f582f690b90a3d1f2b47ef2d
文字を選択すると、カーソルのある行の最終編集者のユーザー名をポップアップでお知らせします
編集日時はテロメア見れば分かるので表示しないようにしました
code:popup.js
(async () => {
const getUsersInProject = async () => {
const resp = await fetch(/api/projects/${scrapbox.Project.name});
const json = await resp.json()
const users = json.users;
// build id -> user map
const userMap = new Map();
users.forEach(user => {
userMap.set(user.id, user);
});
return userMap;
};
const userMap = await getUsersInProject();
scrapbox.PopupMenu.addButton({
title: () => {
if (!scrapbox.Page.lines) return null;
const lineMap = (() => {
const map = new Map();
scrapbox.Page.lines.forEach(line => map.set(line.id, line));
return map;
})();
const lineDom = document.querySelector('.cursor-line');
if (!lineDom) return null;
const lineId = lineDom.id.substr(1);
const line = lineMap.get(lineId);
if (!line) return null;
const userId = line.userId;
if (!userId) return null;
const user = userMap.get(userId);
if (!user) return null;
return edited by ${user.name};
},
onClick: () => null
});
})();
コードブロックではポップアップ出ないので使えない
文字を選択してポップアップを出さないと使えない
テロメアに出る形だとうれしい
複数行選択してもカーソルのある行の編集者しか見れない